Development of distributed applications is considerably more complicated than development of undistributed applications. Two main reasons can be distinguished. These are the following:
1) When considering an application as finite automation with specific logic of transition from one to another state, it is fair to say that a distributed application has very complicated and often unpredictable global state.
2) Development of application interaction protocol is necessary for interaction between separate nodes. Taking into account the first point, it follows that complexity of the protocol logic with acceptable operation reliability is strongly limited. It means that a distributed application functional must be rather simple. And its loss of simplicity results in nonlinear growth of development complexity.
The mentioned reasons are particularly crucial in loosely coupled distributed systems based on message exchange between independently developed component elements.
Mobile agent, a version of which is described in the patent “System and method for distributed computation based upon the movement, execution and interaction of processes in a network”, U.S. Pat. No. 5,603,031, James E. White et al., Feb. 11, 1997, may be considered as one of solutions of the specified problems. This solution is based on movement of mobile code and agents with the same execution logic in different nodes. The computing model proposed in that patent is strongly limited and is mainly well-operated under single-flow distributed execution. The interaction agent model has low capacity as well. “Go” control transfer instruction proposed in the patent designates simply node in which an agent to be executed; however a start point is fixed under compilation.
Another variant of solutions of the specified problems is described in the patent “Computerised method and system for implementing distributed application”, U.S. Pat. No. 6,694,370, Joerg Bischof et al., Feb. 17, 2004, which has been chosen as a prototype for the claimed invention. This solution is based on division of application instruction sequence into blocks to be executed in different network nodes. Every segment begins from an instruction allowing dynamical computing of a node into which it is necessary to move and execute a code segment next to the instruction. In the FIG. 1 it is shown a diagram of the specified prototype use. Here 11 and 12 are nodes in which distributed application is executed. 13 is a sequence of instructions downloaded in the node 11. 14 are instructions to be executed in the node 12. ASSERT instruction determines a node in which the next instruction should be executed. RELEASE instruction denotes that the next instruction can be executed in any node (in the figure it is shown that control returns to the initial node). Prototype shortcomings are the following:
1) Inconformity of a common model of program development involving dedication of code segments with specific functionality to procedures, which are located in any place of an executive file and can be called from any place of a program. Also procedures can take different parameters and return values as opposed to the concerned prototype in which this function is absent. Owing to this inconformity it is possible to use the patent-prototype only in rather simple applications.
2) A special compiler and builder supporting this technique as well as a special loader of a code for application execution are necessary for development of a program. As for interpreted applications, this technique must be supported on the level of interpreter.
3) The patent is limited within analysis of sequence of instructions to be executed in various network nodes.